package negocio;

import java.util.Collection;

import modelo.Funcionario;

import org.hibernate.Session;
import org.hibernate.Transaction;

import dao.Database;
import dao.EmpresaDao;
import dao.FuncionarioDao;

public class GerenciadorFuncionario {

	public GerenciadorFuncionario() {
	}
	public void salvarFuncionario(Funcionario funcionario){
		Session session = Database.getInstance().getSession();		
		Transaction tx = session.beginTransaction();

		FuncionarioDao funcionarioDao = new FuncionarioDao(session);
		funcionarioDao.incluiOuAtualiza(funcionario);
		
		tx.commit();	
		session.close();
	}
	
	public Collection<Funcionario> listarFuncionarios(){
		Session session = Database.getInstance().getSession();		
		Transaction tx = session.beginTransaction();
		
		Collection<Funcionario> funcionarios;
		FuncionarioDao funcionarioDao = new FuncionarioDao(session);
		funcionarios = funcionarioDao.listarFuncionarios();
		
		tx.commit();	
		session.close();
		
		return funcionarios;
	
	}
	
	public Funcionario buscarFuncionario(int id){
		Session session = Database.getInstance().getSession();		
		Transaction tx = session.beginTransaction();

		FuncionarioDao funcionarioDao = new FuncionarioDao(session);
		Funcionario funcionario = funcionarioDao.buscarPorChavePrimaria(id);
		
		tx.commit();	
		session.close();
		
		return funcionario;
	}
	
	public void removerFuncionario(int id){
		Session session = Database.getInstance().getSession();		
		Transaction tx = session.beginTransaction();
		

		FuncionarioDao funcionarioDao = new FuncionarioDao(session);
		Funcionario funcionario = funcionarioDao.buscarPorChavePrimaria(id); 
		funcionarioDao.remove(funcionario);
		
		tx.commit();	
		session.close();
	}

}
